#include <54func.h>
void *threadFunc(void *arg)
{
    //需要将传入的参数进行强制性类型转换：
    //               因为（void *）不可以直接进行解引用或加减
    int *p = (int *)arg;
    printf("child,*p = %d\n",*p);
    ++*p;//先将*p的值增加1，然后返回增加后的值
    //*p++;     //先取*p，然后将指针p自增1，操作的是指针本身，而不是它指向的内容
    return NULL;
}
int main()
{
    //一定要先在堆区申请内存空间，并且初始化，才创建子线程，因为多线程具有并发性
    int *p = (int *)malloc(sizeof(int));//堆区申请空间，存放数据1000
    *p = 1000;
    pthread_t tid;//获取子线程的tid
    //直接传入指针，因为arg是（void *）类型，任何指针类型都可以转换为（void *）类型
    int ret = pthread_create(&tid,NULL,threadFunc,p);
    THREAD_ERROR_CHECK(ret,"pthread_create");//检查线程报错
    sleep(2);
    printf("main,*p = %d\n",*p);
    return 0;
}
